<?php

class ParienteController extends AweController {

  /**
   * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
   * using two-column layout. See 'protected/views/layouts/column2.php'.
   */
  public $layout = '//layouts/column2';
  public $defaultAction = 'admin';

  public function filters() {
    return array(
        array('CrugeAccessControlFilter'),
    );
  }

  /**
   * Displays a particular model.
   * @param integer $id the ID of the model to be displayed
   */
  public function actionView($id) {
    $this->render('view', array(
        'model' => $this->loadModel($id),
    ));
  }

  /**
   * Creates a new model.
   * If creation is successful, the browser will be redirected to the 'view' page.
   */
  public function actionCreate() {
    $model = new Pariente;


    if (isset($_POST['Pariente'])) {
      $model->attributes = $_POST['Pariente'];
      if ($model->save()) {
        $this->redirect(array('admin'));
      }
    }

    $this->render('create', array(
        'model' => $model,
    ));
  }

  /**
   * Updates a particular model.
   * If update is successful, the browser will be redirected to the 'view' page.
   * @param integer $id the ID of the model to be updated
   */
  public function actionUpdate($id) {
    $model = $this->loadModel($id);


    if (isset($_POST['Pariente'])) {
      $model->attributes = $_POST['Pariente'];
      if ($model->save()) {
        $this->redirect(array('admin'));
      }
    }

    $this->render('update', array(
        'model' => $model,
    ));
  }

  /**
   * Deletes a particular model.
   * If deletion is successful, the browser will be redirected to the 'admin' page.
   * @param integer $id the ID of the model to be deleted
   */
  public function actionDelete($id) {
    if (Yii::app()->request->isPostRequest) {
      // we only allow deletion via POST request
      $this->loadModel($id)->delete();

      // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
      if (!isset($_GET['ajax']))
        $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
    } else
      throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
  }

  /**
   * Manages all models.
   */
  public function actionAdmin() {
    $model = new Pariente('search');
    $model->unsetAttributes(); // clear any default values
    if (isset($_GET['Pariente']))
      $model->attributes = $_GET['Pariente'];

    $this->render('admin', array(
        'model' => $model,
    ));
  }

  /**
   * Returns the data model based on the primary key given in the GET variable.
   * If the data model is not found, an HTTP exception will be raised.
   * @param integer the ID of the model to be loaded
   */
  public function loadModel($id, $modelClass = __CLASS__) {
    $model = Pariente::model()->findByPk($id);
    if ($model === null)
      throw new CHttpException(404, 'The requested page does not exist.');
    return $model;
  }

  /**
   * Performs the AJAX validation.
   * @param CModel the model to be validated
   */
  protected function performAjaxValidation($model, $form = null) {
    if (isset($_POST['ajax']) && $_POST['ajax'] === 'pariente-form') {
      echo CActiveForm::validate($model);
      Yii::app()->end();
    }
  }

  //nuevos controles
  public function actionQuickCreate($entidad_tipo, $entidad_id) {
    $model = new Pariente;
    if ($entidad_id && $entidad_tipo) {
      if ($entidad_tipo == 'PERSONA') {
        $model->id_persona = $entidad_id;
      }
    }

    $result = array();
    if (isset($_POST['ajax']) && $_POST['ajax'] === '#pariente-form') {
      $model->attributes = $_POST['Pariente'];
//      var_dump($model);
//      die();
//            $model->Dir_Estado = 1;
      $result['success'] = $model->validate();
      if (!$result['success']) {
        $result['errors'] = $model->errors;
        echo json_encode($result);
        Yii::app()->end();
      }
    }
    if (Yii::app()->request->isAjaxRequest) {
      if (isset($_POST['Pariente'])) {
        $model->attributes = $_POST['Pariente'];
        if ($model->validate()) {//CAPTURAR LOS ERRRORES
          $result['success'] = $model->save();
          $result['data'] = $model->attributes;
          echo json_encode($result);
        }
      } else {
        $this->renderPartial('_form_quick_modal', array('model' => $model), false, true);
      }
    }
  }

  /**
   * Updates a particular model.
   * If update is successful, the browser will be redirected to the 'view' page.
   * @param integer $id the ID of the model to be updated
   */
  public function actionQuickUpdate($id) {
    $model = $this->loadModel($id);
    $result = array();
    if (isset($_POST['ajax']) && $_POST['ajax'] === '#pariente-form') {
      $model->attributes = $_POST['Pariente'];
      $result['success'] = $model->validate();
      //restaurar entidad facturación 
      if (!$result['success']) {
        $result['errors'] = $model->errors;
        echo json_encode($result);
        Yii::app()->end();
      }
    }
    if (Yii::app()->request->isAjaxRequest) {
      if (isset($_POST['Pariente'])) {
        $model->attributes = $_POST['Pariente'];
        if ($model->validate()) {//CAPTURAR LOS ERRRORES
          $result['success'] = $model->save();
          $result['data'] = $model->attributes;
          echo json_encode($result);
        }
      } else {
        $this->renderPartial('_form_quick_modal', array('model' => $model), false, true);
      }
    }
  }

  public function actionInfo() {
    if (Yii::app()->request->isAjaxRequest) {

      $model = new Pariente('search');
      $model->unsetAttributes(); // clear any default values
      if (isset($_GET['ajax'])) {
//                if ($_GET['data']['entidad_tipo'] == 'EMPRESA') {
//                    $model->Dir_Emp_Codigo = $_GET['data']['entidad_id'];
        if ($_GET['data']['entidad_tipo'] == 'PERSONA') {
          $model->id_persona = $_GET['data']['entidad_id'];
        }
        $model->attributes = $_GET['data'];
      }
      $this->renderPartial('_info', array('model' => $model));
    }
  }
}
